/*
 * Copyright (C) 2016 alchemystar, Inc. All Rights Reserved.
 */
package com.eblly.meta;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.LinkedHashMap;
import java.util.Map;

/**
 * @Author eblly
 */
@Getter
@Setter
@ToString(exclude = {"createTable"})
public class Table {
    private String tableName;
    private String createTable;


    private Map<String, Column> columnMap;

    // key = table_name + ";;;" + index_name
    private static String seg = ";;;";
    private Map<String, Key> keyMap;


    public Table() {
        columnMap = new LinkedHashMap<>();
        keyMap = new LinkedHashMap<>();
    }

    /**
     * @param keyName
     * @param key
     */
    public void putKey(String keyName, Key key) {
        // table.getKeyMap().put(keyName, key)
        keyMap.put(keyName, key);
    }

    /**
     * @param keyName
     * @param columnName
     */
    public void addColumn2KeyMap(String keyName, String columnName) {
        //  table.getKeyMap()
        //  .get(keyName)
        //  .getColumnList()
        //  .add(columnName);
        keyMap.get(keyName)
              .getColumnList()
              .add(columnName);
    }


    //    /**
    //     * @param columnName
    //     * @param column
    //     */
    //    public void putColumn(String columnName, Column column) {
    //        columnMap.put(columnName, column);
    //    }
    //
    //    /**
    //     * @param columnName
    //     * @return
    //     */
    //    public Column getColumn(String columnName) {
    //        return columnMap.get(columnName);
    //    }

    //    /**
    //     * @param keyName
    //     * @param columnName
    //     */
    //    public void putIndex(String keyName, String columnName) {
    //        keyMap.get(keyName).getColumnList().add(columnName);
    //    }
    //
    //    /**
    //     * @param keyName
    //     * @param key
    //     */
    //    public void putIndex(String keyName, Key key) {
    //        keyMap.put(keyName, key);
    //
    //    }

}
